﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sispe.Entities;
using System.Data;
using System.Data.Entity;
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;


namespace Sispe.Repository
{
    public class CeycaDatabaseInitializer : DropCreateDatabaseAlways<SISPEContext>
    {
        protected override void Seed(SISPEContext context)
        {
            if (context == null)
                throw new ArgumentNullException("context");

            GetSexo().ForEach(p => context.SEXOes.Add(p));
            GetEstadoCivil().ForEach(p => context.ESTADO_CIVIL.Add(p));
            GetRegimenLaboral().ForEach(p => context.REGIMEN_LABORAL.Add(p));
            GetDocumentoSustenta().ForEach(p => context.DOCUMENTO_SUSTENTA.Add(p));
            GetTipoContrato().ForEach(p => context.TIPO_CONTRATO.Add(p));
            GetTipoTrabajador().ForEach(p => context.TIPO_TRABAJADOR.Add(p));
            GetVinculoFamiliar().ForEach(p => context.VINCULO_FAMILIAR.Add(p));
            //----GetEstudio().ForEach(p => context.ESTUDIOS.Add(p));
            GetOcupacion().ForEach(p => context.OCUPACIONs.Add(p));
            GetTipoPago().ForEach(p => context.TIPO_PAGO.Add(p));
            GetRegimenPensionario().ForEach(p => context.REGIMEN_PENSIONARIO.Add(p));
            GetMotivoFinPeriodo().ForEach(p => context.MOTIVO_FIN_PERIODO.Add(p));
            GetRegimenSalud().ForEach(p => context.REGIMEN_SALUD.Add(p));
            GetEntidadPrestadoraSalud().ForEach(p => context.ENTIDAD_PRESTADORA_SALUD.Add(p));
            GetTipoPersonal().ForEach(p => context.TIPO_PERSONAL.Add(p));
            GetRol().ForEach(p => context.ROLs.Add(p));
            GetUbicacionProyecto().ForEach(p => context.UBICACION_PROYECTO.Add(p));
            GetLineaTelefonica().ForEach(p => context.LINEA_TELEFONICA.Add(p));
            GetAreaContrato().ForEach(p => context.AREA_CONTRATOs.Add(p));
            GetAreaLiquidacion().ForEach(p => context.AREA_LIQUIDACIONs.Add(p));
            GetTipoPermiso().ForEach(p => context.TIPO_PERMISO.Add(p));
            //GetGrados().ForEach(p=>context.GRADOes.Add(p));

            //GetRegimenLaboral().ForEach(p => context.REGIMEN_LABORAL.Add(p));


            IngresarUbigeo();
            CargaMenu();
        }

        static List<SEXO> GetSexo()
        {
            var sexo = new List<SEXO>
            {
                new SEXO { Codigo="01", Descripcion = "Masculino".ToUpper() },
                new SEXO { Codigo="02", Descripcion = "Femenino".ToUpper() }
            };

            return sexo;
        }

        static List<AREA_CONTRATO> GetAreaContrato()
        {
            var area = new List<AREA_CONTRATO>
           {
               new AREA_CONTRATO { Descripcion = "No tiene".ToUpper() }
           };

            return area;
        }

        static List<ROL> GetRol()
        {
            var sexo = new List<ROL>
            {
                new ROL { Descripcion = "ADMINISTRADOR".ToUpper() },
                new ROL { Descripcion = "RRHH".ToUpper() },
                new ROL { Descripcion = "ASISTENTE SOCIAL".ToUpper() },
                new ROL { Descripcion = "CONTABILIDAD".ToUpper() },
                new ROL { Descripcion = "ADMISION".ToUpper() },
                new ROL { Descripcion = "ADMINISTRADOR DEL SISTEMA".ToUpper() }
            };

            return sexo;
        }

        static List<UBICACION_PROYECTO> GetUbicacionProyecto()
        {
            var sexo = new List<UBICACION_PROYECTO>
            {
                new UBICACION_PROYECTO { Codigo="0001", Descripcion = "CAJAMARCA".ToUpper() },
                new UBICACION_PROYECTO { Codigo="0002", Descripcion = "TANTAHUATAY".ToUpper()  },
                new UBICACION_PROYECTO { Codigo="0003", Descripcion = "JUNIN".ToUpper()  },
                new UBICACION_PROYECTO { Codigo="0004", Descripcion = "HUALGAYOC".ToUpper() }
            };

            return sexo;
        }

        static List<LINEA_TELEFONICA> GetLineaTelefonica()
        {
            var lineaTelefonica = new List<LINEA_TELEFONICA>
           {
               new LINEA_TELEFONICA{Descripcion="MOVISTAR".ToUpper()},
               new LINEA_TELEFONICA{Descripcion="RPM".ToUpper()},
               new LINEA_TELEFONICA{Descripcion="CLARO".ToUpper()},
               new LINEA_TELEFONICA{Descripcion="RPC".ToUpper()}
           };
            return lineaTelefonica;
        }

        static List<ESTADO_CIVIL> GetEstadoCivil()
        {
            var estadoCivil = new List<ESTADO_CIVIL>
           { 
                new ESTADO_CIVIL { Descripcion = "Casado (a)".ToUpper() },
                new ESTADO_CIVIL { Descripcion = "Conviviente (a)".ToUpper() },
                new ESTADO_CIVIL { Descripcion = "Viudo (a)".ToUpper() },
                new ESTADO_CIVIL { Descripcion = "Divorciado (a)".ToUpper() },
                new ESTADO_CIVIL { Descripcion = "Separado (a)".ToUpper() },
                new ESTADO_CIVIL { Descripcion = "Soltero (a)".ToUpper() }
           };
            return estadoCivil;
        }

        static List<REGIMEN_LABORAL> GetRegimenLaboral()
        {
            var regimenLaboral = new List<REGIMEN_LABORAL>
            {
               new REGIMEN_LABORAL {Codigo="01", Descripcion = "Decreto Legislativo N° 728".ToUpper()},
               new REGIMEN_LABORAL {Codigo="02",Descripcion = "Construcción Civil".ToUpper()},
               new REGIMEN_LABORAL {Codigo="99",Descripcion = "Otros no Previstos".ToUpper()}
            };

            return regimenLaboral;
        }

        static List<TIPO_TRABAJADOR> GetTipoTrabajador()
        {
            var tipoTrabajador = new List<TIPO_TRABAJADOR>
           {
                new TIPO_TRABAJADOR {Codigo="00",Descripcion="No asignado".ToUpper()}, 
                new TIPO_TRABAJADOR {Codigo="19",Descripcion="Ejecutivo".ToUpper()},
                new TIPO_TRABAJADOR {Codigo="20",Descripcion="Obrero".ToUpper()},
                new TIPO_TRABAJADOR {Codigo="21",Descripcion="Empleado".ToUpper()},
               
           };

            return tipoTrabajador;
        }

        static List<AREA_LIQUIDACION> GetAreaLiquidacion()
        {
            var areaLiquidacion = new List<AREA_LIQUIDACION>
            {
                new AREA_LIQUIDACION { Descripcion = "No tiene".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Rrhh".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Operaciones".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Logistica".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Logistica Sistemas".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Logistica Almacen".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Logistica Transportes".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Administracion".ToUpper()},
                new AREA_LIQUIDACION { Descripcion = "Administracion General".ToUpper()},


            };

            return areaLiquidacion;
        }

        static List<TIPO_PERSONAL> GetTipoPersonal()
        {
            var tipoPersonal = new List<TIPO_PERSONAL>
            {
                new TIPO_PERSONAL {Descripcion="personal staff".ToUpper()}, 
                new TIPO_PERSONAL {Descripcion="personal empleado".ToUpper()},
                new TIPO_PERSONAL {Descripcion="personal obrero".ToUpper()},
            };

            return tipoPersonal;
        }

        static List<TIPO_CONTRATO> GetTipoContrato()
        {
            var tipoContrato = new List<TIPO_CONTRATO>
           {
               new TIPO_CONTRATO {Codigo="01",Descripcion="A Plazo Indeterminado".ToUpper()},
               new TIPO_CONTRATO {Codigo="02",Descripcion="A Tiempo Parcial".ToUpper()},
               new TIPO_CONTRATO {Codigo="03",Descripcion="Por Inicio o Incremento de Actividad".ToUpper()},
               new TIPO_CONTRATO {Codigo="04",Descripcion="Por Necesidades del Mercado".ToUpper()},
               new TIPO_CONTRATO {Codigo="05",Descripcion="Por Reconversión Empresarial".ToUpper()},
               new TIPO_CONTRATO {Codigo="06",Descripcion="Ocasional".ToUpper()},
               new TIPO_CONTRATO {Codigo="07",Descripcion="De Suplencia".ToUpper()},
               new TIPO_CONTRATO {Codigo="08",Descripcion="De Emergencia".ToUpper()},
               new TIPO_CONTRATO {Codigo="09",Descripcion="Para Obra Indeterminada o Servicio Especifico".ToUpper()},
               new TIPO_CONTRATO {Codigo="10",Descripcion="Intermitente".ToUpper()},
               new TIPO_CONTRATO {Codigo="11",Descripcion="De Temporada".ToUpper()},
               new TIPO_CONTRATO {Codigo="12",Descripcion="De Exportación no Tradicional".ToUpper()},
               new TIPO_CONTRATO {Codigo="13",Descripcion="De Extranjero".ToUpper()},
               new TIPO_CONTRATO {Codigo="14",Descripcion="Administrativo de Servicios".ToUpper()},
               new TIPO_CONTRATO {Codigo="15",Descripcion="Para Proyecto Determinado".ToUpper()},
               new TIPO_CONTRATO {Codigo="99",Descripcion="Otros".ToUpper()}
           };

            return tipoContrato;
        }


        static List<VINCULO_FAMILIAR> GetVinculoFamiliar()
        {
            var vinculoFamiliar = new List<VINCULO_FAMILIAR>
           {               
               new VINCULO_FAMILIAR {Codigo="02",Descripcion="Conyuge".ToUpper()},
               new VINCULO_FAMILIAR {Codigo="03",Descripcion="Concubina(o)".ToUpper()},
               new VINCULO_FAMILIAR {Codigo="04",Descripcion="Gestante".ToUpper()},
               new VINCULO_FAMILIAR {Codigo="05",Descripcion="Hijo Menor de Edad".ToUpper()},
               new VINCULO_FAMILIAR {Codigo="06",Descripcion="Hijo Mayor Incp Perm".ToUpper()}
           };
            return vinculoFamiliar;
        }

        static List<DOCUMENTO_SUSTENTA> GetDocumentoSustenta()
        {
            var documentoSustenta = new List<DOCUMENTO_SUSTENTA>
           {   
               new DOCUMENTO_SUSTENTA {Codigo="01",Descripcion="ESCRITURA PÚBLICA".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="02",Descripcion="SENTENCIA DE DECLARATORIA DE PATERNIDAD".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="03",Descripcion="TESTAMENTO".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="04",Descripcion="RESOLUCIÓN DE INCAPACIDAD".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="05",Descripcion="ACTA O PARTIDA DE MATRIMONIO CIVIL".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="06",Descripcion="ACTA O PARTIDA DE MATRIMONIO INSCRITO EN REG CONSULAR PERUANO.".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="07",Descripcion="ACTA O PARTIDA DE MATRIMONIO REALIZADO EN EL EXTERIOR E INSCRITO EN RENIEC O MUNICIPALIDAD. ".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="08",Descripcion="ESCRITURA PÚBLICA - RECONOC. DE UNIÓN DE HECHO - LEY N.° 29560".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="09",Descripcion="RESOLUCIÓN JUDICIAL - RECONOC. DE UNIÓN DE HECHO".ToUpper()},
               new DOCUMENTO_SUSTENTA {Codigo="10",Descripcion="ACTA DE NACIMIENTO O DOCUMENTO ANALOGO QUE SUSTENTA FILIACIÓN.".ToUpper()}

           };
            return documentoSustenta;
        }

        //static List<ESTUDIO> GetEstudio()
        //{
        //    var estudio = new List<ESTUDIO>
        //    {
        //        new ESTUDIO {Codigo="01",Descripcion="Sin Educación Formal".ToUpper()},
        //        new ESTUDIO {Codigo="02",Descripcion="Educación Especial Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="03",Descripcion="Educación Especial Completa".ToUpper()},
        //        new ESTUDIO {Codigo="04",Descripcion="Educación Primaria Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="05",Descripcion="Educación Primaria Completa".ToUpper()},
        //        new ESTUDIO {Codigo="06",Descripcion="Educación Secundaria Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="07",Descripcion="Educación Secundaria Completa".ToUpper()},
        //        new ESTUDIO {Codigo="08",Descripcion="Educación Técnica Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="09",Descripcion="Educación Técnica Completa".ToUpper()},
        //        new ESTUDIO {Codigo="10",Descripcion="Educación Superior (Instututo Superior,ETC) INC".ToUpper()},
        //        new ESTUDIO {Codigo="11",Descripcion="Educación Superior (Instututo Superior,ETC) COM".ToUpper()},
        //        new ESTUDIO {Codigo="12",Descripcion="Educación Universitaria Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="13",Descripcion="Educación Universitaria Completa".ToUpper()},
        //        new ESTUDIO {Codigo="14",Descripcion="Grado Bachiller".ToUpper()},
        //        new ESTUDIO {Codigo="15",Descripcion="Titulado".ToUpper()},
        //        new ESTUDIO {Codigo="16",Descripcion="Estudios de Maestria Incompleta".ToUpper()},
        //        new ESTUDIO {Codigo="17",Descripcion="Estudios de Maestria Completa".ToUpper()},
        //        new ESTUDIO {Codigo="18",Descripcion="Grado de Maestria".ToUpper()},
        //        new ESTUDIO {Codigo="19",Descripcion="Estudios de Doctorado Incompleto ".ToUpper()},
        //        new ESTUDIO {Codigo="20",Descripcion="Estudios de Doctorado Completo ".ToUpper()},
        //        new ESTUDIO {Codigo="21",Descripcion="Grado de Doctor".ToUpper()}
        //    };
        //    return estudio;
        //}

        static List<OCUPACION> GetOcupacion()
        {
            var ocupacion = new List<OCUPACION>
           


           { 
               new OCUPACION {Codigo="000000",Descripcion="NO TIENE".ToUpper()},
               new OCUPACION {Codigo="123004",Descripcion="GERENTE GENERAL, EMPRESA/CONSTRUCCION Y OBRAS".ToUpper()},
               new OCUPACION {Codigo="139004",Descripcion="DIRECTOR DE DEPARTAMENTO, COMPRAS/ADQUISICION".ToUpper()},
               new OCUPACION {Codigo="217004",Descripcion="ANALISTA, SISTEMAS INFORMATICOS/COMPUTADORAS".ToUpper()},
               new OCUPACION {Codigo="217007",Descripcion="INGENIERO, SISTEMAS INFORMATICOS".ToUpper()},
               new OCUPACION {Codigo="219001",Descripcion="INGENIERO CIVIL".ToUpper()},
               new OCUPACION {Codigo="219002",Descripcion="INGENIERO CIVIL, CONSTRUCCIÓN".ToUpper()},
               new OCUPACION {Codigo="221002",Descripcion="INGENIERO ELECTRICISTA".ToUpper()},
               new OCUPACION {Codigo="221013",Descripcion="TECNOLOGO ELECTRICIDAD".ToUpper()},
               new OCUPACION {Codigo="221019",Descripcion="INGENIERO ELECTRONICO".ToUpper()},
               new OCUPACION {Codigo="222001",Descripcion="INGENIERO MECANICO".ToUpper()},
               new OCUPACION {Codigo="222010",Descripcion="INGENIERO MECANICO Y ELECTRICISTA".ToUpper()},
               new OCUPACION {Codigo="224001",Descripcion="INGENIERO METALURGICO".ToUpper()},
               new OCUPACION {Codigo="225001",Descripcion="INGENIERO, MINAS".ToUpper()},
               new OCUPACION {Codigo="226014",Descripcion="TOPOGRAFO, (SUELOS)".ToUpper()},
               new OCUPACION {Codigo="227001",Descripcion="INGENIERO, ADMINISTRATIVO".ToUpper()},
               new OCUPACION {Codigo="227002",Descripcion="INGENIERO, SISTEMAS/EXCEPTO INFORMATICOS".ToUpper()},
               new OCUPACION {Codigo="227005",Descripcion="INGENIERO INDUSTRIAL".ToUpper()},
               new OCUPACION {Codigo="229003",Descripcion="INGENIERO, CONTROL DE CALIDAD".ToUpper()},
               new OCUPACION {Codigo="229006",Descripcion="INGENIERO, MEDIO AMBIENTE".ToUpper()},
               new OCUPACION {Codigo="229009",Descripcion="INGENIERO, TOPOGRAFO".ToUpper()},
               new OCUPACION {Codigo="229011",Descripcion="INGENIERO (NO CLASIFICADO EN OTRAS CLASIFICAC".ToUpper()},
               new OCUPACION {Codigo="234012",Descripcion="INGENIERO AGRONOMO".ToUpper()},
               new OCUPACION {Codigo="234014",Descripcion="INGENIERO FORESTAL".ToUpper()},
               new OCUPACION {Codigo="237001",Descripcion="VETERINARIO".ToUpper()},
               new OCUPACION {Codigo="251002",Descripcion="AUDITOR".ToUpper()},
               new OCUPACION {Codigo="251003",Descripcion="CONTADOR".ToUpper()},
               new OCUPACION {Codigo="252001",Descripcion="ADMINISTRADOR DE EMPRESAS".ToUpper()},
               new OCUPACION {Codigo="252003",Descripcion="ADMINISTRADORES, OTROS".ToUpper()},
               new OCUPACION {Codigo="253013",Descripcion="ESPECIALISTA, SEGURIDAD EN EL TRABAJO".ToUpper()},
               new OCUPACION {Codigo="268001",Descripcion="PSICOLOGO".ToUpper()},
               new OCUPACION {Codigo="269002",Descripcion="ASISTENTE SOCIAL".ToUpper()},
               new OCUPACION {Codigo="269007",Descripcion="ASISTENTE SOCIAL, EMPRESA".ToUpper()},
               new OCUPACION {Codigo="312007",Descripcion="TECNICO, INGENIERIA CIVIL".ToUpper()},
               new OCUPACION {Codigo="313001",Descripcion="TECNICO, ELECTRICISTA".ToUpper()},
               new OCUPACION {Codigo="313002",Descripcion="TECNICO ELECTRICISTA, ALTA TENSION".ToUpper()},
               new OCUPACION {Codigo="314005",Descripcion="TECNICO MECANICO".ToUpper()},
               new OCUPACION {Codigo="314009",Descripcion="TECNICO MECANICO, AUTOMOVILES".ToUpper()},
               new OCUPACION {Codigo="318011",Descripcion="TECNICO, INGENIERIA/SEGURIDAD E HIGIENE INDUS".ToUpper()},
               new OCUPACION {Codigo="364004",Descripcion="ADMINISTRADOR, PERSONAL".ToUpper()},
               new OCUPACION {Codigo="364005",Descripcion="TECNICOS ADMINISTRADORES, OTROS".ToUpper()},
               new OCUPACION {Codigo="411002",Descripcion="JEFE DE ALMACEN".ToUpper()},
               new OCUPACION {Codigo="411006",Descripcion="JEFE DE PERSONAL ADMINISTRATIVO".ToUpper()},
               new OCUPACION {Codigo="413009",Descripcion="SECRETARIA".ToUpper()},
               new OCUPACION {Codigo="421001",Descripcion="ALMACENERO".ToUpper()},
               new OCUPACION {Codigo="421003",Descripcion="EMPLEADO, ALMACENAJE Y APROVISIONAMIENTO".ToUpper()},
               new OCUPACION {Codigo="423005",Descripcion="EMPLEADO DE SERVICIOS ADMINISTRATIVOS, OTROS".ToUpper()},
               new OCUPACION {Codigo="436023",Descripcion="EMPLEADO, TRANSPORTE".ToUpper()},
               new OCUPACION {Codigo="451006",Descripcion="CAJERO, EMPRESA/ALMACEN".ToUpper()},  
               new OCUPACION {Codigo="461005",Descripcion="SUPERVISOR DE CAMPO".ToUpper()},
               new OCUPACION {Codigo="462006",Descripcion="EMPLEADO DE OFICINA, OTROS".ToUpper()},
               new OCUPACION {Codigo="781043",Descripcion="OPERADOR DE MAQUINAS HERRAMIENTAS EN GENERAL".ToUpper()},
               new OCUPACION {Codigo="783051",Descripcion="REPARADOR ELECTRICISTA DE APARATOS ELECTRODOM".ToUpper()},
               new OCUPACION {Codigo="785033",Descripcion="SOLDADOR-PLOMERO".ToUpper()},
               new OCUPACION {Codigo="851005",Descripcion="PINTOR DE CONSTRUCCION, CONSERVACION".ToUpper()},
               new OCUPACION {Codigo="868009",Descripcion="MAESTRO DE OBRAS EN GENERAL".ToUpper()},
               new OCUPACION {Codigo="875018",Descripcion="OPERADOR DE MONTACARGAS,CONSTRUCCION".ToUpper()},
               new OCUPACION {Codigo="876001",Descripcion="CONDUCTOR DE APLANADORA DE CAMINOS".ToUpper()},
               new OCUPACION {Codigo="876010",Descripcion="CONDUCTOR DE EXCAVADORA".ToUpper()},
               new OCUPACION {Codigo="885005",Descripcion="CONDUCTOR DE AUTOBUS, AUTOMOVIL, CAMIONETA, C".ToUpper()},
               new OCUPACION {Codigo="952004",Descripcion="GUARDIAN".ToUpper()},
               new OCUPACION {Codigo="952019",Descripcion="VIGILANTE".ToUpper()},
               new OCUPACION {Codigo="961007",Descripcion="PEON GENERAL".ToUpper()},
               new OCUPACION {Codigo="982016",Descripcion="PEON EN GENERAL".ToUpper()}
           };
            return ocupacion;
        }

        static List<TIPO_PAGO> GetTipoPago()
        {
            var tipoPago = new List<TIPO_PAGO>
           {
               new TIPO_PAGO {Codigo="01",Descripcion="Efectivo".ToUpper()},
               new TIPO_PAGO {Codigo="02",Descripcion="Depóstito cuenta".ToUpper()},
               new TIPO_PAGO {Codigo="03",Descripcion="Otros".ToUpper()}

           };

            return tipoPago;
        }

        static List<MOTIVO_FIN_PERIODO> GetMotivoFinPeriodo()
        {
            var motivoFinPeriodo = new List<MOTIVO_FIN_PERIODO>
           {
               new MOTIVO_FIN_PERIODO{Codigo="01",Descripcion="Contrato Vigente".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="02",Descripcion="Renuncia".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="03",Descripcion="Renuncia con Incentivos".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="04",Descripcion="Despido o Destitución".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="05",Descripcion="Cese Colectivo".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="06",Descripcion="Jubilación".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="07",Descripcion="Invalidez Absoluta Permanente".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="08",Descripcion="Termino de Obra / Serv o Vencimiento Plazo".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="09",Descripcion="Mutuo Discenso".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="10",Descripcion="Fallecimiento".ToUpper()},
               new MOTIVO_FIN_PERIODO{Codigo="11",Descripcion="Reasisgnación Trabajadores Sector Público".ToUpper()}

           };

            return motivoFinPeriodo;
        }

        static List<REGIMEN_PENSIONARIO> GetRegimenPensionario()
        {
            var regimenPensionario = new List<REGIMEN_PENSIONARIO>
            {
               new REGIMEN_PENSIONARIO {Codigo="02",Descripcion="Decreto Ley 19990 - SNP - ONP".ToUpper()},
               new REGIMEN_PENSIONARIO {Codigo="21",Descripcion="SSP Integra".ToUpper()},
               new REGIMEN_PENSIONARIO {Codigo="22",Descripcion="SSP Horizonte".ToUpper()},
               new REGIMEN_PENSIONARIO {Codigo="23",Descripcion="SSP Profuturo".ToUpper()},
               new REGIMEN_PENSIONARIO {Codigo="24",Descripcion="SSP Prima".ToUpper()},
            };
            return regimenPensionario;
        }

        static List<REGIMEN_SALUD> GetRegimenSalud()
        {
            var regimenSalud = new List<REGIMEN_SALUD>
           {
               new REGIMEN_SALUD {Codigo="01",Descripcion="ESSALUD REGULAR (Exclusivamente)".ToUpper()},
               new REGIMEN_SALUD {Codigo="02",Descripcion="ESSALUD REGULAR Y EPS / SER PROPIOS".ToUpper()}
           };
            return regimenSalud;
        }

        static List<ENTIDAD_PRESTADORA_SALUD> GetEntidadPrestadoraSalud()
        {
            var entidadPrestadoraSalud = new List<ENTIDAD_PRESTADORA_SALUD>
          {
              new ENTIDAD_PRESTADORA_SALUD{Codigo="01",Descripcion="PERSALUD S.A. EPS".ToUpper()},
              new ENTIDAD_PRESTADORA_SALUD{Codigo="02",Descripcion="PACIFICO S.A EPS".ToUpper()},
              new ENTIDAD_PRESTADORA_SALUD{Codigo="03",Descripcion="RIMAC INTERNACIONAL S.A EPS".ToUpper()},
              new ENTIDAD_PRESTADORA_SALUD{Codigo="04",Descripcion="SERVICIOS PROPIOS".ToUpper()},
              new ENTIDAD_PRESTADORA_SALUD{Codigo="05",Descripcion="MAPFRE PERU S.A EPS".ToUpper()},
              new ENTIDAD_PRESTADORA_SALUD{Codigo="06",Descripcion="COLSANITAS PERU S.A EPS".ToUpper()}
          };
            return entidadPrestadoraSalud;
        }

        //static List<GRADO> GetGrados()
        //{
        //    var estadoCivil = new List<GRADO>
        //     {
        //         new GRADO { Descripcion = "Bachiller".ToUpper() },
        //         new GRADO { Descripcion = "Maestria".ToUpper() },
        //         new GRADO { Descripcion = "Doctorado".ToUpper() },
        //         new GRADO { Descripcion = "Magister".ToUpper() }
        //     };

        //    return estadoCivil;
        //}

        static List<TIPO_PERMISO> GetTipoPermiso()
        {
            var tipPermiso = new List<TIPO_PERMISO>
            {
                new TIPO_PERMISO { Descripcion = "Vacaciones".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Enfermedad".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Accidente".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Paternidad".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Fallecimiento".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Maternidad".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Lactancia".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Adopcion".ToUpper() },
                new TIPO_PERMISO { Descripcion = "Matrimonio".ToUpper() }
            };

            return tipPermiso;
        }


        public void IngresarUbigeo()
        {
            string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source='D:\Giank\AIP System\ubigeoCeyca.xls'; Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'"; //Office 2003-2007

            using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
            {
                OleDbCommand command = new OleDbCommand("SELECT `Hoja1$`.Codigo, `Hoja1$`.Departamento, `Hoja1$`.Provincia, `Hoja1$`.Distrito FROM `Hoja1$`", connection);

                connection.Open();

                // Create DbDataReader to Data Worksheet
                using (DbDataReader dr = command.ExecuteReader())
                {
                    // SQL Server Connection String
                    string sqlConnectionString = "Data Source=.;Initial Catalog=GRUPOCEYCARRHH;Integrated Security=True";

                    // Bulk Copy to SQL Server
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString, SqlBulkCopyOptions.TableLock))
                    {
                        bulkCopy.ColumnMappings.Add("Departamento", "Departamento");
                        bulkCopy.ColumnMappings.Add("Provincia", "Provincia");
                        bulkCopy.ColumnMappings.Add("Distrito", "Distrito");
                        bulkCopy.ColumnMappings.Add("Codigo", "Codigo");
                        bulkCopy.DestinationTableName = "UBIGEO";
                        bulkCopy.WriteToServer(dr);
                    }
                }
            }
        }

        public void CargaMenu()
        {
            string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source='D:\Giank\AIP System\MenuCeyca.xls'; Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'"; //Office 2003-2007

            using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
            {
                OleDbCommand command = new OleDbCommand("SELECT `Hoja1$`.Descripcion, `Hoja1$`.Tag, `Hoja1$`.Comentario FROM `Hoja1$`", connection);

                connection.Open();

                // Create DbDataReader to Data Worksheet
                using (DbDataReader dr = command.ExecuteReader())
                {
                    // SQL Server Connection String
                    string sqlConnectionString = "Data Source=.;Initial Catalog=GRUPOCEYCARRHH;Integrated Security=True";

                    // Bulk Copy to SQL Server
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString, SqlBulkCopyOptions.TableLock))
                    {
                        bulkCopy.ColumnMappings.Add("Descripcion", "Descripcion");
                        bulkCopy.ColumnMappings.Add("Tag", "Tag");
                        bulkCopy.ColumnMappings.Add("Comentario", "Comentario");
                        bulkCopy.DestinationTableName = "MENU";
                        bulkCopy.WriteToServer(dr);
                    }
                }
            }
        }
    }

}
